package org.vse.aha.gui.nodes;

import java.util.Collections;
import java.util.List;
import org.openide.nodes.Children;
import org.openide.nodes.Node;
import org.vse.aha.common.quotes.Quote;

/**
 *
 * @author Martin Vondráček
 */
public class QuoteNodeFactory extends Children.Keys<Quote> {
  
  List<Quote> výroky;
  
  public QuoteNodeFactory(List<Quote> výroky) {
    super();
    this.výroky = výroky;
  }

  /**
   * Zavolán při prvním požadavku na děti.
   * Nastaví všechny uzly z konstruktoru.
   */
  @Override
  protected void addNotify() {
    super.addNotify();
    
    setKeys(výroky);
  }
  
  /**
   * Voláno, když jsou všechny děti (uzly) odstraněny z paměti.
   * Nastavíme prázdnou kolekci uzlů.
   */
  @Override
  protected void removeNotify() {
    setKeys( Collections.<Quote>emptySet() );
    super.removeNotify();
  }
  
  /**
   * Vytvoří uzly pro daný klíč (chceme jen 1 uzel pro 1 klíč).
   * @param key výrok, pro který vytváříme uzel
   * @return pole o jednom uzlu
   */
  @Override
  protected Node[] createNodes(Quote key) {
    return new Node[] { new QuoteNode(key) };
  }
  
}
